package org.scboy.rbac.service;

import java.util.Date;

import org.scboy.utils.entitys.coobi.Model;
import org.scboy.utils.entitys.coobi.Page;
import org.scboy.utils.entitys.rbac.LoginUser;

/**
 * 登录回话信息
 * @author yanghao
 * 
 */
public interface LoginSessionService {
	
	/**
	 * 分页查询登录回话信息
	 * @param model 查询参数
	 * @return
	 */
	Page page(Model model);
	
	/**
	 * 用户登录
	 * @param loginName 登录名称
	 * @param password 登录密码
	 * @param ip 登录IP
	 * @return
	 */
	LoginUser login(String loginName,String password,String loginType,String ip,String ips);
	
	/**
	 * 访问时间更新
	 * @param loginSessionId
	 */
	boolean modifyAccess(String loginSessionId);
	
	/**
	 * 注销登陆
	 * @param loginSessionId
	 * @param state 退出方式
	 */
	boolean loginOut(String loginSessionId,int state);

	/**
	 * 管理员强制关闭回话。
	 * @param sessionId
	 */
	boolean adminClose(String sessionId);
	
	/**
	 * 清除日志
	 */
	boolean delete (Date date);
	
	/**
	 * 更新用户登录状态
	 * @param model
	 * @return
	 */
	boolean updateState(String userId,String sessionId,int state);
	
	/**
	 * 检查用户登录状态
	 * @param userId
	 * @return
	 */
	Model getState(String userId);
}
